Skip to content

chore(rvcsi): drop inline v2/crates/rvcsi-* — consume vendor/rvcsi + crates.io#544

Merged
ruvnet merged 1 commit into
mainfrom
chore/rvcsi-via-submodule
May 13, 2026
Merged

chore(rvcsi): drop inline v2/crates/rvcsi-* — consume vendor/rvcsi + crates.io#544
ruvnet merged 1 commit into
mainfrom
chore/rvcsi-via-submodule

Conversation

@ruvnet
Copy link
Copy Markdown
Owner

@ruvnet ruvnet commented May 13, 2026

Follow-up to #542 (rvCSI inline crates) and #543 (vendor/rvcsi submodule): rvCSI now has a standalone home — github.com/ruvnet/rvcsi — published to crates.io as rvcsi-* 0.3.x and to npm as @ruv/rvcsi, with a Claude Code plugin marketplace. The inline v2/crates/rvcsi-* copies are now a duplicate, so this PR removes them and re-points the docs.

  • git rm -r v2/crates/rvcsi-{core,dsp,events,adapter-file,adapter-nexmon,ruvector,runtime,node,cli} (57 files)
  • v2/Cargo.toml: drop the 9 from membersvendor/rvcsi/Cargo.toml is its own workspace, so consumers depend on the published crates (or the submodule's crates/rvcsi-* paths), not as v2 workspace members.
  • CLAUDE.md: the 9 crate-table rows → one vendor/rvcsi row.
  • README.md docs table: rvCSI entry → the standalone repo + submodule/crates.io/npm/plugin note.
  • CHANGELOG.md: [Unreleased] entry.

The ADRs (ADR-095, ADR-096), PRD, and DDD model stay in docs/ as the design record of the incubation. Nothing in the v2 workspace depended on the rvcsi crates, so this is a clean removal — cargo build --workspace --no-default-features and cargo test --workspace --no-default-features stay green.

Merge after #543.

🤖 Generated with claude-flow

…i submodule / crates.io instead

rvCSI now lives in its own repo (github.com/ruvnet/rvcsi), vendored here as
`vendor/rvcsi` (PR #543) and published to crates.io as `rvcsi-* 0.3.x` /
to npm as `@ruv/rvcsi`. The inline copies in `v2/crates/rvcsi-*` (added in
#542) were a duplicate; this removes them and re-points the docs.

- `git rm -r v2/crates/rvcsi-{core,dsp,events,adapter-file,adapter-nexmon,ruvector,runtime,node,cli}`
- `v2/Cargo.toml`: remove the 9 from `members` (note: `vendor/rvcsi/Cargo.toml`
  is its own workspace — depend on the published crates or the submodule paths,
  not as v2 workspace members).
- `CLAUDE.md`: the 9 crate-table rows collapse to one `vendor/rvcsi` row.
- `README.md` docs table: rvCSI entry points at the standalone repo + notes the
  submodule / crates.io / npm / plugin.
- `CHANGELOG.md`: `[Unreleased]` entry.

The ADRs (ADR-095, ADR-096), PRD, and DDD model stay in `docs/` as the design
record of the incubation. `cargo build --workspace --no-default-features` and
`cargo test --workspace --no-default-features` stay green.

Co-Authored-By: claude-flow <ruv@ruv.net>
@ruvnet ruvnet merged commit 00304f9 into main May 13, 2026
4 of 13 checks passed
pull Bot pushed a commit to Spencerx/RuView that referenced this pull request May 13, 2026
…posed)

rvCSI was extracted to its own repo (PR ruvnet#542ruvnet#544): 9 crates on crates.io @
0.3.1, `@ruv/rvcsi` on npm, vendored at `vendor/rvcsi`. RuView currently
*vendors but does not consume* it — zero `rvcsi-*` deps in `v2/`, zero
`use rvcsi_…` imports, zero `@ruv/rvcsi` JS imports. ADR-097 decides:

  D1 — Depend on the published crates from crates.io, not the submodule path.
  D2 — Pilot in `wifi-densepose-sensing-server` (smallest, best-bounded
       touchpoint: UDP receiver + handlers + WS fan-out).
  D3 — `wifi-densepose-signal` is *layered on top of* rvCSI, not replaced.
       The SOTA / RuvSense modules go beyond rvCSI's scope and stay in
       RuView; they consume `rvcsi_core::CsiFrame`. Overlapping basic DSP
       primitives delegate to `rvcsi-dsp` or become thin shims.
  D4 — `wifi-densepose-hardware` stops carrying ESP32 wire-format parsing;
       the parser moves to a new `rvcsi-adapter-esp32` crate (ADR-095 §1.2
       / D15 follow-up, owned in the rvCSI repo).
  D5 — `wifi-densepose-ruvector` (training pipeline) and `rvcsi-ruvector`
       (runtime RF memory) stay separate for now; a follow-up unifies them
       once the production RuVector binding lands.
  D6 — `rvcsi_core::CsiFrame` is the boundary type at the runtime edge;
       one explicit `From`/`Into` conversion point at that edge.
  D7 — Track via `rvcsi-* = "0.3"` SemVer ranges + bump the `vendor/rvcsi`
       submodule pin per RuView release for reproducible offline builds.
  D8 — Once every consumer depends on crates.io, decide (separately)
       whether to drop the submodule.

Adoption is phased (P1 pilot → P2 signal shim → P3 ESP32 adapter →
P4 clean-up → P5 submodule review); each phase is one PR with tests.

Indexed in docs/adr/README.md.

Co-Authored-By: claude-flow <ruv@ruv.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant